草庐IT

Sonar Qube

全部标签

java - 属性 'sonar.jacoco.reportPath' 已弃用。请改用 'sonar.jacoco.reportPaths'

Property'sonar.jacoco.reportPath'isdeprecated.Pleaseuse'sonar.jacoco.reportPaths'instead.我在通过Gradle运行SonarQube时不断收到此消息,并且短语“reportPath”在整个多模块项目中甚至一次都没有出现。我什至将sonarqube属性放在allprojects下以覆盖可能存在的任何默认值。关于如何消除此错误的任何提示?我正在使用:allprojects{sonarqube{properties{property"sonar.jacoco.reportPaths","${project

java - 在 SonarQube 中使用 Spring 构造函数注入(inject)

我有一段带有字段注入(inject)的代码,我正试图将其转换为使用构造函数注入(inject)。初始代码如下所示:@AutowiredprivateEnvironmentenv;@AutowiredprivateYYYAdaptoryyyAdaptor;@AutowiredprivateJAXBContextjaxbContext;这就是我重写它的方式:privateEnvironmentenv;privateYYYAdaptoryyyAdaptor;privateJAXBContextjaxbContext;@AutowiredpublicYYYResource(Environmen

java - 如何删除 'Assignment of Parameter ' 变量'不允许'

我正在使用Java编写Controller程序,并使用Sonar检查样式。在我的Sonar中,我有一条错误消息:'AssignmentofParameter'variable'isnotallowed.它所在的线路是:@RequestParam(value="variable",required=false)Stringvariable所以我想知道如何消除该错误,因为我不能在使用该注释时只创建一个setter。编辑我正在使用Eclipse。被打破的规则是ParameterAssignment。@RequestParam(value="variable",required=false)S

java - 不应使用 "com.sun.*"和 "sun.*"包中的类 Sonar issue for Jersey client

我正在使用jersey客户端进行休息调用。我的代码的导入是:importcom.sun.jersey.api.client.Client;importcom.sun.jersey.api.client.ClientResponse;importcom.sun.jersey.api.client.WebResource;一切正常。我正在使用Sonar检查我的代码质量。Sonar显示的主要问题是:Classesfrom"com.sun."and"sun."packagesshouldnotbeused这实际上是使用来自sun的类的不良做法吗?如果是,有哪些替代方案?

java - Sonar 错误的整体覆盖(jacoco)

我在多模块Java8项目上运行Jacoco和Sonar。我在每个模块中都有单元测试,为了节省资源,我将所有“集成测试”收集到一个“集成测试运行器”中,并在那里运行它们(用测试前后包装它们)。当测量覆盖率时,UT为每个模块target/jacoco-ut.exec生成exec文件,而IT生成一个exec文件:/target/jacoco-it.exec。当我运行sonar时,我会重复使用这些exec文件,为jacoco-it.exec提供路径。我得到一个非常奇怪的图像:总体覆盖率怎么会更低? 最佳答案 我找到了问题和解决方案。From

java - 如何在 SonarQube 中抑制警告 'Source files should not have any duplicated blocks'?

我正在使用SonarQube5.4并调查几个问题的抑制。我发现一旦我插入@SuppressWarnings("common-java:DuplicatedBlocks"),SonarQube就没有检测到抑制规则Sourcefilesshouldnothaveanyduplicatedblocks在文件的开头(文件无法编译)或在其中一个重复代码块的标记处。我在http://docs.sonarqube.org/display/PLUG/Java+FAQ找到了信息声明如下:The//NOSONARtagisusefultodeactivateallrulesatagivenlinebuti

java - 必须使用 "putIfAbsent"的返回值——真的吗?

我有一个像这样的ConcurrentMaps的ConcurrentMap...ConcurrentMap>mapsMap=newConcurrentHashMap();现在在某些方法中,我想通过确保某个键存在映射来防止NPE...mapsMap.putIfAbsent(someKey,newConcurrentHashMap());...所以我可以安全地调用...mapsMap.get(someKey).put(...);...这里不用担心空值。现在,Sonarqube告诉我,这违反了规则RSPEC-2201...Returnvaluesfromfunctionswithoutside

java - 类声明的 Sonar 分支覆盖

我有一个Sonar类(class):publicclassFoo{.....muchcode....}并且Sonar报告了publicclassFoo行中覆盖的1/2分支。这是什么意思?如何测试声明类的行?编辑:以防万一,这是Sonarv3.5。编辑2:显示我的意思的屏幕截图,请注意第9行“公共(public)类”旁边的1/2。将鼠标悬停在此上方时,我会收到一条工具提示,说明“测试涵盖了1个分支”编辑#3:好的,经过更多调查,我已将范围缩小到我能找到的触发此事件的最小片段:publicclassFoo{Foo(finalStrings){assert(s!=null);}}如果构造函数

java - 如何配置 SonarCloud

我有java项目,我想将它与SonarCloud集成,我按照官方步骤操作:InspectingcodewiththeSonarQubeScanner#Beforeinspectingyourcode,youneedto:CreateauserauthenticationtokenforyouraccountonSonarCloud.Encryptthistokentravisencryptabcdef0123456789ordefineSONAR_TOKENinyourRepositorySettingsFindwhichSonarCloud.ioorganizationyouwant

java - 方法有8个参数,大于7个授权

当我使用sonarlint扫描代码时,以下代码将错误显示为“方法有8个参数,大于7个已授权”@PutMapping("/something")publicListupdateSomeThing(@PathVariablefinalSomeCodecode,@PathVariablefinalSomeIdid,@PathVariablefinalStringtestId,@PathVariablefinalStringitemId,@RequestBodyfinalListsomeList,@RequestHeader("test")finalStringtestHeader,final